package com.zhouheng.springbootpython.module.decisiontree;

import com.zhouheng.springbootpython.common.utils.CommandUtil;

/**
 * 测试决策树算法
 * 一、需要python3.0的环境
 * 二、需要将python和txt三个文件放到BASE_PATH指定目录
 * 三、sampleData.txt样本数据为  n+1列的数据，前面n是特征，最后一列是分类值（可以不为本例的2+1列）
 * 四、forecastData.txt测试数据为 n列的数据，输出分类值
 * 五、本例forecastData.txt为1个，但是可以更改为同时预测多条并全部返回（有需要更改python实现）
 * 六、本例是写死的txt，可以通过FileUtil，把List转String再写入到txt中，如果怕多线程同步，文件名中可以加入账号和时间戳
 *
 * @author 周恒
 * @date 20190213 14:43:26
 * @since v1.0
 */
public class DecisionTree {

    private static String BASE_PATH = "/data/CIPAS/python/algorithm/decisionTree/";

    /**
     * PYTHON_PATH python路径
     */
    private static String PYTHON_PATH = BASE_PATH + "decisionTree.py";

    /**
     * SAMPLE_DATA_PATH 训练集TXT路径
     */
    private static String SAMPLE_DATA_PATH = BASE_PATH + "sampleData.txt";

    /**
     * FORECAST_DATA_PATH 测试集TXT路径
     */
    private static String FORECAST_DATA_PATH = BASE_PATH + "forecastData.txt";

    public static void main(String[] args)throws Exception {
        String[] parameters = {
                "python",
                PYTHON_PATH,
                SAMPLE_DATA_PATH,
                FORECAST_DATA_PATH};
        String value = CommandUtil.execRuntimeReturnValue(parameters);
        //输出决策树分类离散值
        System.out.println(value);
    }

}
